package com.investmenttechnologyservices.modules;

import com.google.appengine.api.datastore.DatastoreService;
import com.google.appengine.api.users.UserService;
import com.google.inject.AbstractModule;
import com.investmenttechnologyservices.services.AccountService;
import com.investmenttechnologyservices.services.AccountServiceImpl;
import com.investmenttechnologyservices.services.ExchangeService;
import com.investmenttechnologyservices.services.ExchangeServiceImpl;
import com.investmenttechnologyservices.services.FirmService;
import com.investmenttechnologyservices.services.FirmServiceImpl;
import com.investmenttechnologyservices.services.HolidayDateService;
import com.investmenttechnologyservices.services.HolidayDateServiceImpl;
import com.investmenttechnologyservices.services.InstrumentService;
import com.investmenttechnologyservices.services.InstrumentServiceImpl;
import com.investmenttechnologyservices.services.LoginService;
import com.investmenttechnologyservices.services.LoginServiceImpl;
import com.investmenttechnologyservices.services.PositionService;
import com.investmenttechnologyservices.services.PositionServiceImpl;
import com.investmenttechnologyservices.services.RegionService;
import com.investmenttechnologyservices.services.RegionServiceImpl;
import com.investmenttechnologyservices.services.SymbolService;
import com.investmenttechnologyservices.services.SymbolServiceImpl;
import com.investmenttechnologyservices.services.TradeService;
import com.investmenttechnologyservices.services.TradeServiceImpl;

public class ProductionModule extends AbstractModule {
	@Override
	protected void configure() {
		bind(UserService.class).toProvider(UserServiceProvider.class);
		bind(DatastoreService.class).toProvider(DatastoreServiceProvider.class);
		bind(SymbolService.class).to(SymbolServiceImpl.class);
		bind(DatastoreService.class).toProvider(DatastoreServiceProvider.class);
		bind(LoginService.class).to(LoginServiceImpl.class);
		bind(TradeService.class).to(TradeServiceImpl.class);
		bind(FirmService.class).to(FirmServiceImpl.class);
		bind(AccountService.class).to(AccountServiceImpl.class);
		bind(PositionService.class).to(PositionServiceImpl.class);
		bind(RegionService.class).to(RegionServiceImpl.class);
		bind(HolidayDateService.class).to(HolidayDateServiceImpl.class);
		bind(InstrumentService.class).to(InstrumentServiceImpl.class);
		bind(ExchangeService.class).to(ExchangeServiceImpl.class);
//		bind(DatastoreHelper.class).to(DatastoreHelper.class);
	}
}
